An iconic programming system is a "programming-less" environment where programming is done by connecting graphical images of tools (icons), together with connecting lines, to form a directed graph and create an iconic network which represents a software program. The iconic programming system may be used in research and development test environments, where several different electronic instruments are connected to test a system or device. Programming such a system requires instructions to cause the various instruments to perform desired functions in order to operate as a system.
When an iconic programming system is used, each instrument will be represented by a graphical icon, also called a graphical object, and the connections between the instruments are represented by lines between the graphical images. In addition to graphical icons representing instruments in such a system, graphical icons are provided for programming functions, for example looping, IF-THEN statements, etc. By combining instrument and programming icons, a user can create an iconic network involving the programmed operation of several instruments.
Iconic systems are designed to process without a particular order as to which icons process before other icons, except that an icon will not normally process until all data necessary for its processing is available. When all data is available to several icons, they may process simultaneously. In order to construct iconic systems that function with real world instruments, and which function on a single processor, the icons must process is some defined order. One definition of the order for processing icons is supplied by the conventional rules associated with data flow diagrams.
An important limitation of such a system, however, is that the conventional rules of data flow diagrams do not provide for asynchronous operations such as interrupts or service requests. When an iconic system is used with a real-world device, for example when the computer that processes the iconic programming system is connected to an external device such as a signal generator or voltmeter, the connection is performed through some interface card (circuit) within the computer. One such interface is the IEEE 488 bus, also known as the Hewlett-Packard Interface Bus (HPIB). When one of these real-world devices detects a condition which requires service from the host computer, it initiates a service request (SRQ) event over the bus to signal the host computer. Since these conditions may occur only for a very short time, and often the device requiring service cannot perform other functions until it is serviced, the iconic programming system must provide a way of processing these service requests.
Also, A service request may be cleared within a device by any access to the device. Therefore, the iconic programming system must ensure that no extraneous references are made to the device before the service request can be processed by the desired service request thread.
Some prior art systems, for example multi-tasking operating systems, are designed to process interrupts, which is similar to processing a service request. In these systems, however, the interrupt service routine is typically only given a high priority, and other processing is continued if the interrupt service routine becomes idle. Thus, in such an idle period, the other processing in these systems could reference the device and possibly clear the service request before it is processed by the interrupt service routine.
There is a need in the art then for a system that will provide a way for a programmer in an iconic system to process service requests. There is further need for such a system to suspend other processing and immediately process the service request. The present invention meets these needs.
Various features and components of an iconic network system are disclosed in U.S. patent applications:
(A) Application Ser. No. 07/483,478 filed Feb. 22, 1990 for PROGRAMMING ESCAPE FROM AN ICONIC SYSTEM of Bailey, Beethe, Wolber, and Williams; PA1 (B) Application Ser. No. 07/661,936 filed Feb. 28, 1991 for LINE PROBE IN AN ICONIC PROGRAMMING SYSTEM of Wolber; PA1 (C) Application Ser. No. 07/668,286 filed Mar. 12, 1991 for INPUT AND OUTPUT CONSTRAINTS ON DEVICES IN AN ICONIC PROGRAMMING SYSTEM of Wolber and Beethe; and PA1 (D) Application Ser. No. 07/668,285 filed Mar. 12, 1991 for A SYSTEM FOR ENTERING AND MODIFYING VARIABLE NAMES FOR TERMINALS OF ICONS IN AN ICONIC PROGRAMMING SYSTEM of Wolber and Beethe;
each of which is hereby specifically incorporated by reference for all that is disclosed therein.